package com.purchase.ml.entity.order;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_order")
@ApiModel(value = "SysOrder", description = "订单表")
public class SysOrder implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "")
    private Long id;

    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "update_at")
    @ApiModelProperty(value = "更新时间")
    private Date updateAt;

    /**
     * 发货日期
     */
    @TableField(value = "delivery_at")
    @ApiModelProperty(value = "发货日期")
    private Date deliveryAt;

    /**
     * 接收日期
     */
    @TableField(value = "recive_at")
    @ApiModelProperty(value = "接收日期")
    private Date reciveAt;

    /**
     * 采购订单号
     */
    @TableField(value = "oid")
    @ApiModelProperty(value = "采购订单号")
    private Long oid;

    /**
     * 购买者ID
     */
    @TableField(value = "buyer")
    @ApiModelProperty(value = "购买者ID")
    private Long buyer;

    /**
     * 出售者ID
     */
    @TableField(value = "sellers")
    @ApiModelProperty(value = "出售者ID")
    private Long sellers;

    /**
     * 商品总额
     */
    @TableField(value = "puduct_fee")
    @ApiModelProperty(value = "商品总额")
    private BigDecimal puductFee;

    /**
     * 运费
     */
    @TableField(value = "delivery_fee")
    @ApiModelProperty(value = "运费")
    private BigDecimal deliveryFee;

    /**
     * 收费调整
     */
    @TableField(value = "adapt_fee")
    @ApiModelProperty(value = "收费调整")
    private BigDecimal adaptFee;

    /**
     * 订单总额
     */
    @TableField(value = "sub_fee")
    @ApiModelProperty(value = "订单总额")
    private BigDecimal subFee;

    /**
     * 支付方式
     */
    @TableField(value = "pay_method")
    @ApiModelProperty(value = "支付方式")
    private String payMethod;

    /**
     * 发票号
     */
    @TableField(value = "invoice_id")
    @ApiModelProperty(value = "发票号")
    private String invoiceId;

    /**
     * 一级利润
     */
    @TableField(value = "first_level_profit")
    @ApiModelProperty(value = "一级利润")
    private BigDecimal firstLevelProfit;

    /**
     * 二级利润
     */
    @TableField(value = "second_level_profit")
    @ApiModelProperty(value = "二级利润")
    private BigDecimal secondLevelProfit;

    /**
     * 支付信息ID
     */
    @TableField(value = "pay_id")
    @ApiModelProperty(value = "支付信息ID")
    private Long payId;

    /**
     * 支付信息ID
     */
    @TableField(value = "dealer_type")
    @ApiModelProperty(value = "商户类型 0 主经销商 1 经销商")
    private Integer dealerType ;

    /**
     * 0:待付款；1:已支付；2已发货；3：配送中；4：已送达；5已签收
     */
    @TableField(value = "state")
    @ApiModelProperty(value = "0:待付款；1:已支付；2已发货；3：配送中；4：已送达；5已签收")
    private Integer state;

    private static final long serialVersionUID = 1L;


    public Integer getDealerType() {
        return dealerType;
    }

    public void setDealerType(Integer dealerType) {
        this.dealerType = dealerType;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdateAt() {
        return updateAt;
    }

    public void setUpdateAt(Date updateAt) {
        this.updateAt = updateAt;
    }

    public Date getDeliveryAt() {
        return deliveryAt;
    }

    public void setDeliveryAt(Date deliveryAt) {
        this.deliveryAt = deliveryAt;
    }

    public Date getReciveAt() {
        return reciveAt;
    }

    public void setReciveAt(Date reciveAt) {
        this.reciveAt = reciveAt;
    }

    public Long getOid() {
        return oid;
    }

    public void setOid(Long oid) {
        this.oid = oid;
    }

    public Long getBuyer() {
        return buyer;
    }

    public void setBuyer(Long buyer) {
        this.buyer = buyer;
    }

    public Long getSellers() {
        return sellers;
    }

    public void setSellers(Long sellers) {
        this.sellers = sellers;
    }

    public BigDecimal getPuductFee() {
        return puductFee;
    }

    public void setPuductFee(BigDecimal puductFee) {
        this.puductFee = puductFee;
    }

    public BigDecimal getDeliveryFee() {
        return deliveryFee;
    }

    public void setDeliveryFee(BigDecimal deliveryFee) {
        this.deliveryFee = deliveryFee;
    }

    public BigDecimal getAdaptFee() {
        return adaptFee;
    }

    public void setAdaptFee(BigDecimal adaptFee) {
        this.adaptFee = adaptFee;
    }

    public BigDecimal getSubFee() {
        return this.subFee;
    }

    public void setSubFee(BigDecimal subFee) {
        this.subFee = subFee;
    }

    public String getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(String payMethod) {
        this.payMethod = payMethod;
    }

    public String getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(String invoiceId) {
        this.invoiceId = invoiceId;
    }

    public BigDecimal getFirstLevelProfit() {
        return firstLevelProfit;
    }

    public void setFirstLevelProfit(BigDecimal firstLevelProfit) {
        this.firstLevelProfit = firstLevelProfit;
    }

    public BigDecimal getSecondLevelProfit() {
        return secondLevelProfit;
    }

    public void setSecondLevelProfit(BigDecimal secondLevelProfit) {
        this.secondLevelProfit = secondLevelProfit;
    }

    public Long getPayId() {
        return payId;
    }

    public void setPayId(Long payId) {
        this.payId = payId;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }
}